#include <iostream>
#include <cstdio>

#include <filesystem>

using namespace std;

void childprocess(string exe_path, string param) {
    const string command = filesystem::absolute(exe_path).generic_string() + " " + param;

    // 执行另一个程序，并将输出重定向到FILE指针
    FILE *pipe = _popen(command.c_str(), "w");
    if (pipe == nullptr)
    {
        cout << "无法执行该程序" << endl;
        return;
    }

    // 从其他程序读取输出
    char buffer[128];
    while (fgets(buffer, sizeof(buffer), pipe) != nullptr)
    {
        cout << buffer;
    }

    // 向其他程序发送输入
    fprintf(pipe, "input");

    // 关闭FILE指针和其他程序
    _pclose(pipe);
}

int main()
{
    childprocess("./ws/ws.exe", "{\"allowed_origins\": [\"http://127.0.0.1:8080\"]}");

    system("pause");

    return 0;
}